V4.5/Boty
Blog deweloperów: bardziej ludzkie boty Dlaczego zaktualizowaliśmy boty?Blog deweloperów: bardziej ludzkie boty Mecze z botami stanowią znaczną część rozgrywanych gier, nawet pośród graczy na poziomie 30. To wiele godzin spędzonych z naszymi wirtualnymi przyjaciółmi, więc postanowiliśmy uczynić je bardziej interesującymi. Przepytaliśmy graczy z trybów drużynowej walki z SI oraz PvP, aby dowiedzieć się, co sądzą o botach. Jedną z rzeczy, która pojawiała się najczęściej, była prośba o bardziej „ludzkie” zachowanie botów: mniej przewidywalne zachowania i skupienie się na tych samych elementach rozgrywki, co gracze, czyli zabijanie stworów i trafianie kombinacjami umiejętności. O dziwno, prośba o trudniejsze boty nie pojawiała się tak często. Na podstawie zebranych danych postanowiliśmy skupić się na bardziej ludzkich botach w tej aktualizacji, zwłaszcza że taka zmiana uczyni trudniejsze boty bardziej interesującymi w przyszłości. Gracze także stwierdzili, że boty nie oceniały siły i zagrożenia w taki sam sposób jak większość graczy. Okazało się, że mają rację. Usprawnienie oceny zagrożenia Ocenianie zagrożenia to system, którego używają boty, aby stwierdzić, jak są silne i jak silni są przeciwnicy. Ten system kontroluje wszystkie podejmowane przez boty decyzje w trakcje gry. Poprzedni system wykorzystywał metodę, która jest niezwykle popularna w grach, zwłaszcza strzelankach. Bot analizuje, ile obrażeń otrzymał niedawno, i wykorzystuje to do ocenienia przyszłego zagrożenia. W strzelankach takie zachowanie ma sens. Jeżeli bot wyjdzie za róg i otrzyma obrażenia, prawdopodobnie dostanie jeszcze większe lanie, jeżeli pozostanie w miejscu. Lepiej więc zrobi, gdy się wycofa. League of Legends działa trochę inaczej. Jeżeli użyje wszystkich swoich zaklęć na bocie, a on to przeżyje, nie jest to odpowiedni czas na odwrót. To czas, aby zniszczyć tego małego @$!#!. Veigar praktycznie nie zadaje obrażeń, gdy jego umiejętności się odnawiają, więc dlaczego by nie zaatakować go, gdy nie może nic zrobić? Nasz nowy system postara się uporać z takimi sytuacjami, biorąc pod uwagę nie tylko poziom zdrowia, ale także to, ile umiejętności jest dostępnych dla bota i jego przeciwników. Zauważyliśmy znaczną poprawę w ocenianiu zagrożenia przez boty (co, niestety, zasmuciło Veigara). Jednakże usprawnione ocenianie zagrożenia nie rozwiąże wszystkich problemów dla botów. League of Legends stworzono z myślą o ludziach, a nie botach, i to powoduje pojawienie się ciekawych problemów. Przykładowo, gra nie wie, jak zadziała umiejętność, dopóki nie zostanie użyta. Gdy Morgana użyje Kajdan Duszy, zaczyna działać skrypt, który ciągle sprawdza, czy ktoś zerwał połączenie. Gdy czas działania zaklęcia dobiegnie końca, skrypt powie: „Hej, ty! Zostajesz ogłuszony i otrzymujesz obrażenia” wszystkim, którzy nie zerwali połączenia. Zanim Morgana użyła superumiejętności, gra nie wiedziała, że Kajdany Duszy zadają obrażenia i ogłuszają. Może to wydawać się oczywiste, ale tylko dlatego, że ludzie potrafią czytać opisy umiejętności i analizować obecnie rozgrywające się sytuacje. Dzięki temu system może się dowiedzieć, jak działa umiejętność w momencie, gdy jest używania. Jednakże jest to duży problem dla botów, ponieważ nie potrafią one czytać i nie uczą się na podstawie doświadczeń. W związku z tym, ta aktualizacja musi oszacowywać ilość obrażeń, jaką mogą zadać bohaterowie. Boty będą nadal atakować zbyt agresywnie lub uciekać od walk, które mogą wygrać, ponieważ nie były w stanie idealnie oszacować obrażeń, jakie zostaną zadane... zupełnie tak jak gracze :P Dlaczego boty nie walczą w dżungli, nie przeskakują przez ściany itp. Sprowadza się to do jednego prostego faktu: boty nie wiedzą, gdzie są ściany ani nawet czym są (bycie botem jest naprawdę do bani, co?). Sprowadza się to do tego samego co zaklęcia: League stworzono dla ludzi. Człowiek wie, dlaczego ścieżka się wije – ogradzają ją ściany. Bot korzysta z automatycznego wytyczania trasy. Nie wie, gdzie dokładnie jest ściana, ani nie zna jej grubości. Nie wie nawet, że przeszkoda jest ścianą. Może to być grupa stworów. Podążają sobie radośnie najkrótszą drogą z punktu do punktu, dostarczoną im przez system wyznaczania trasy. Przeskakiwanie przez ściany za pomocą Błysku jest z tego powodu bardzo trudne dla bota – bez znania grubości ściany lub sposobu dotarcia do odpowiedniego miejsca, jest to praktycznie niemożliwe do zrealizowania. Wymagałoby to dużego nakładu pracy nad systemem terenu, aby stało się to możliwe w (odległej) przyszłości. Podobnie jest z walką w dżungli. Jedną z najważniejszych rzeczy podczas walki w dżungli jest odpowiedni dobór trasy, aby była ona bezpieczna lub optymalna pod innym względem niż przebyta odległość. Bez dodatkowych zmian w systemach terenu oraz wyznaczania trasy nie możemy sprawić, aby bot walczący w dżungli był czymś innym niż chodzącym stosem 300 sztuk złota. Zdecydowanie się zgadzamy, że przeskakiwanie przez ściany i walka w dżungli byłyby świetnym zachowaniem dla botów i w przyszłości chcielibyśmy sprawić, aby były do tego zdolne. Na razie postanowiliśmy skupić się na tym, aby boty stawiały lepszy opór podczas walki z graczami. Unikanie umiejętności mierzonych Jedną z największych różnic między graczami, a naszymi poprzednimi botami, był sposób reagowania na umiejętności mierzone. Gracze w większości sytuacji będą próbowali unikać umiejętności mierzonych, natomiast boty często przyjmują je na twarz, zupełnie się nie przejmując. Ponieważ nie jest to ludzkie zachowanie, naprawdę chcieliśmy nauczyć boty uników. Jednakże natrafiliśmy na dość duży problem (pewnie domyślacie się jaki!) − podobnie jak w przypadku terenu, boty nie „widzą” umiejętności mierzonych. Tak wyglądał dla : Bot Annie włączony... Skanowanie... Cel: Nidalee Moje PZ: wysokie Q celu dostępne: Tak Działanie: zabijam stwory dalej, dopóki moje mechaniczne serce nie przepełni się radością ------------------- Skanowanie... Cel: Nidalee Moje PZ: wysokie Q celu dostępne: NIE Działanie: dalej zabijam stwory ------------------- Skanowanie... Cel: Nidalee Moje PZ: niskie PZ celu: wysokie Q celu dostępne: NIE Działanie: WTF!!! GDZIE SIĘ PODZIAŁY MOJE PZ?! NIDALEE OP, RITO PLS! (ucieczka) Na szczęście dla bota Annie, Riot Case wymyślił sposób na wykorzystanie dostępnych dla bota informacji, aby próbował on uniknąć umiejętności mierzonej. Śledząc kierunek, w jakim zwrócony jest przeciwnik oraz umiejętności, które się odnawiają, boty będą próbować umiejętności mierzonych. Tak Rzut Oszczepem wygląda dla Bota Annie po aktualizacji: Bot Annie włączony... Skanowanie... Cel: Nidalee Moje PZ: wysokie Q celu dostępne: Tak Działanie: zabijanie stworów ------------------- Skanowanie... Cel: Nidalee Moje PZ: wysokie Q celu dostępne: NIE UŻYCIE UMIEJĘTNOŚCI Czy umiejętność jest umiejętnością mierzoną: TAK Czy cel jest zwrócony w moją stronę: TAK Działanie: UNIKAĆ NICZYM NINJA ------------------- Skanowanie... Cel: Nidalee Moje PZ: wysokie Q celu dostępne: NIE Działanie: SPROWADŹCIE RYCERZY, BO ZROBIĘ MU Z TYŁKA JESIEŃ ŚREDNIOWIECZA! (Atak) Dzięki tej zmianie boty będą próbowały unikać umiejętności mierzonych... ale nadal nie będzie to idealne. Przykładowo, Błyskawiczny Mróz Anivii nie zaczyna się odnawiać, dopóki nie dotrze na maksymalną odległość lub nie zostanie aktywowany ponownie, więc boty nie będą wiedziały, że został użyty. Zwodnicza Kula Ahri powraca, więc boty mogą jej uniknąć, gdy będzie wylatywać, ale nie, gdy będzie wracać. Istnieje jeszcze kilka umiejętności, z którymi system sobie nie radzi, ale unikanie części jest lepsze, niż nie robienie tego wcale! Aktualizacja kombinacji umiejętności i przedmiotów Poza przykładami opisanymi powyżej, możemy zrobić jeszcze więcej, aby boty zachowywały się bardziej ludzko – przykładowo aktualizując używanie kombinacji umiejętności oraz przedmiotów, które będą kupować. Riot Afic, nasz gość od QA, bardzo nam przy tym pomógł, dzieląc się swoją wiedzą z diamentowej ligi. Boty po aktualizacji będą korzystały z lepszych kombinacji umiejętności oraz sensowniej kupowały przedmioty. Mówiąc o tym, Bot Annie będzie teraz korzystał z kombinacji – ogłuszenie − Tibbers. Zalecamy zmianę bielizny. Bardziej ludzkie boty Jak łatwo się domyślić, boty, które starają się śledzić dużo rzeczy jednocześnie, są dość trudne do zaprogramowania. Nasi inżynierowie, RiotAaronMike i RiotWooTang, odwalili kawał dobrej roboty przy optymalizacji kodu, abyśmy mogli dokonać aktualizacji bez obciążania serwerów. Dobrą okazja do zwiększenia skuteczności botów oraz uczynienia ich bardziej ludzkimi, było spowolnienie częstotliwości, z jaką boty skanują otoczenie i reagują. Początkujące boty będą skanowały z około jedną trzecią częstotliwości, z jaką robiły to wcześniej, a zaawansowane boty − z częstotliwością od 50% do 100%, w zależności od stopnia zagrożenia. Żadne z tych ustawień nie jest szczególnie „wolne”, ale nie są tak szybkie, jak były, co pomaga trochę złagodzić ich nadludzkie reakcje. Te zmiany oraz wiele innych sprawiły, że boty powinny zachowywać się bardziej po ludzku. Zdecydowanie nie reprezentują poziomu diamentu (prawdopodobnie nawet nie srebra), ale na chwilę obecną nie jest to to, co chcemy osiągnąć. Naszym następnym krokiem jest jeszcze lepsze dostosowanie botów, aby pierwsze gry w trybie drużynowej walki z SI były jeszcze lepsze dla graczy. Dalszych informacji oczekujcie wkrótce! Kategoria:Strony aktualizacji